Controlling the tab stops in dialog box

Is there a way to definitively control the sequence of tab stops in a dialog box?

I have defined several fields sequentially in the DXL and they are configured to display sequentially as well. Tabbing through the first four fields works correctly but then it mystifyingly takes two presses of the tab key to get from the fourth field to the fifth field. 

I would prefer the use case for the user to be:

  1. Click in first field, type some text, press tab
  2. Cursor moves to second field, type some text, press tab
  3. Cursor moves to third field, type some text, press tab
  4. Cursor moves to fourth field, type some text, press tab
  5. Cursor moves to fifth and final field, type some text, user clicks dbe button

Thanks in advance for any help you can offer! 


Bob3 - Wed Oct 28 01:19:11 EDT 2015

Re: Controlling the tab stops in custom dialog box
Bob3 - Fri Oct 30 17:40:57 EDT 2015

Bump

Re: Controlling the tab stops in dialog box
Bob3 - Mon Nov 09 12:35:21 EST 2015

Has anyone dealt with tab stops in DXL dialog boxes?

Re: Controlling the tab stops in dialog box
Mathias Mamsch - Tue Nov 10 10:50:20 EST 2015

Bob3 - Mon Nov 09 12:35:21 EST 2015

Has anyone dealt with tab stops in DXL dialog boxes?

From your description it is not possible to reproduce the problem. Can you share the dialog part of your code? Regards, Mathias
 

Re: Controlling the tab stops in dialog box
Bob3 - Tue Nov 10 12:30:32 EST 2015

Mathias Mamsch - Tue Nov 10 10:50:20 EST 2015

From your description it is not possible to reproduce the problem. Can you share the dialog part of your code? Regards, Mathias
 

Mathias, I have attached a minimum subset of the script that generates the UI. None of the buttons or menus are active but it demonstrates how the tab stops begin acting predictably and then go off the rails.

When you run the attached DXL in DOORS (can run from DB explorer), the selection begins in the first field. Just start hitting the Tab key on your keyboard and watch where the selection moves. 

In other languages (like VB, for example), there is a definitive way to control the order of tab stops in dialog boxes. I couldn't find anything like that in DXL but still wanted to ask in case anyone had any creative solutions!


Attachments

deas subset for troubleshooting.dxl

Re: Controlling the tab stops in dialog box
DHAM - Tue Nov 10 13:13:53 EST 2015

It appears the bug appears in constraint placement after line that has  line " Tab stops go crazy now"

Re: Controlling the tab stops in dialog box
Mathias Mamsch - Tue Nov 10 16:26:30 EST 2015

Bob3 - Tue Nov 10 12:30:32 EST 2015

Mathias, I have attached a minimum subset of the script that generates the UI. None of the buttons or menus are active but it demonstrates how the tab stops begin acting predictably and then go off the rails.

When you run the attached DXL in DOORS (can run from DB explorer), the selection begins in the first field. Just start hitting the Tab key on your keyboard and watch where the selection moves. 

In other languages (like VB, for example), there is a definitive way to control the order of tab stops in dialog boxes. I couldn't find anything like that in DXL but still wanted to ask in case anyone had any creative solutions!

The tab stops do not seem to be random. It seems, that after the fourth field, the tab will first jump to the list view (because it is 'higher' in the dialog as the fifth field) after that it will jump to the field (two tabs needed), from there it will first jump to the other list, then to the buttons, etc.

So it seems that the tabs follow a kind of left->right, top->down rule. I am not sure, if you can change that. You could try an awkward way and attach a callback to the setLostFocus to control which element gets the focus afterwards.

Regards, Mathias

Re: Controlling the tab stops in dialog box
Bob3 - Tue Nov 10 16:34:52 EST 2015

Mathias Mamsch - Tue Nov 10 16:26:30 EST 2015

The tab stops do not seem to be random. It seems, that after the fourth field, the tab will first jump to the list view (because it is 'higher' in the dialog as the fifth field) after that it will jump to the field (two tabs needed), from there it will first jump to the other list, then to the buttons, etc.

So it seems that the tabs follow a kind of left->right, top->down rule. I am not sure, if you can change that. You could try an awkward way and attach a callback to the setLostFocus to control which element gets the focus afterwards.

Regards, Mathias

It seems to me that the tab stops should honor the flow within a frame. If the developer went to the trouble of creating a frame, this was most likely to guide the flow of the user interaction. The tab stops should not defy that intention.

Re: Controlling the tab stops in dialog box
Mathias Mamsch - Wed Nov 11 11:02:16 EST 2015

Bob3 - Tue Nov 10 16:34:52 EST 2015

It seems to me that the tab stops should honor the flow within a frame. If the developer went to the trouble of creating a frame, this was most likely to guide the flow of the user interaction. The tab stops should not defy that intention.

I agree. Unfortunately DOORS seems to implement it differently. So what can you do? File a CR against DOORS (might help others in the future, will not help you, since it will take ages if it is implemented at all).

I experimented a but with the focus functions, but no luck there. So there is really no way I see, to fix that problem.

What you could experiment with, is HTML controls. They might allow you an easier definition of complex GUIs.

Regards, Mathias